SET QUOTED_IDENTIFIER ON
GO
SET ANSI_NULLS ON
GO
CREATE PROCEDURE [dbo].[SP_TCMOVI_BANC_I12]  
/*---------------------------------------------------------*/      
/*---Empresa              : OFISIS S.A.                  --*/      
/*---Cliente              : OFISIS S.A.                  --*/      
/*---Sistema              : Tesoreria                    --*/      
/*---M¸dulo               : Empresa                      --*/      
/*---Programa             : Procedimiento para generar   --*/      
/*---                       Cheques para Trabajadores    --*/            
/*---Script               : ttproc_i.sql                 --*/      
/*---Nombre SP            : SP_TCMOVI_BANC_I12           --*/      
/*---Desarrollado por     : Javier Flores A.             --*/      
/*---Fecha Creaci¸n       : 29/10/2003                   --*/      
/*---Base Datos           : Microsoft Sql Server         --*/      
/*---Versi¸n              : 8.0                          --*/      
/*---Invoca a SP          :                              --*/      
/*---------------------------------------------------------*/      
/*---------------------------------------------------------*/      
/*---Modificado 1 por     :Luis Avila Poma     --*/      
/*---Fecha Modificacion   :13/01/2009      --*/  
/*---Detalle Modificacion :Modificacion del SP para      --*/      
/*---        otras Opciones (OFIPLAN)      --*/       
/*---------------------------------------------------------*/      
/*---------------------------------------------------------*/      
/*---Modificado 2 por     :         --*/      
/*---Fecha Modificacion   :         --*/       
/*---Detalle Modificacion :         --*/      
/*---------------------------------------------------------*/      
/*---Comentarios                                         --*/      
/*---                                                    --*/      
/*---------------------------------------------------------*/      
/*---------------------------------------------------------*/      
/*--- Drop Proc SP_TCMOVI_BANC_I12       --*/      
/*--- Grant Execute on SP_TCMOVI_BANC_I12 to public      --*/       
/*--- SP_TCMOVI_BANC_I12         --*/      
/*---------------------------------------------------------*/      
@ISCO_USUA_MODI  TD_VC_008_USUA,  
@ISCO_UNID_TESO  TD_VC_003,  
@ISCO_EMPR   TD_VC_002,          
@ISCO_UNID_PLAN  TD_VC_003,  
@ISCO_BANC   TD_VC_003,       
@ISNU_CNTA_BANC  TD_VC_020,      
@ISAA_BNCO   TD_VC_004,      
@ISMM_BNCO   TD_VC_002,      
@IDFE_OPER   TD_DT_001,       
@IDFE_CHEQ   TD_DT_001,   
@ISCO_TIPO_OPER  TD_VC_003,      
@ISCO_SUBR   TD_VC_003,       
@INFA_TIPO_CAMB  TD_NU_015_006,       
@ISTI_CORR_INEG  TD_VC_001,      
@ISST_ASTO_RESU  TD_VC_001,      
@ISTI_PLAN   TD_VC_003,      
@ISDE_CPTO   TD_VC_050,      
@ISCO_MONE_PLAN  TD_VC_003,      
@ISCO_MONE_CNTA  TD_VC_003,      
@ISCO_CPTO_FORM  TD_VC_006,      
@INNU_ANNO   TD_IN_001,      
@INNU_PERI   TD_IN_001,  
@ISOP_TRAB   TD_VC_003,  
@ISCO_TIPO_DOCU  TD_VC_003    
As  
Declare      
      
@CSCO_TRAB   TD_VC_020,      
@CDFE_OPER   TD_DT_001,       
@CNFA_TIPO_CAMB  TD_NU_015_006,       
@CSCO_TIPO_OPER  TD_VC_003,      
@CSCO_SUBR   TD_VC_003,      
@CNNU_DATO_CALC  TD_NU_016_004,      
@CSNO_TRAB   TD_VC_200,      
@CSCO_MONE   TD_VC_003,      
@VNCO_NUEV_NUME  TD_IN_001,       
@VSCO_NUEV_CHAR  TD_VC_008,      
@VNNU_REGI   TD_IN_001,      
@VNUL_CORR_EGRE  TD_IN_001,      
@VNUL_CORR_INEG  TD_IN_001,      
@VNUL_CORR_AJUS  TD_IN_001,       
@VSST_INTE_BACH  TD_VC_001,      
@VSTI_OPNI_CARG  TD_VC_003,      
@VSTI_OPNI_ABON  TD_VC_003,      
@VNFE_0001   TD_IN_001,      
@VSNU_CHEQ   TD_VC_020,      
@VSNU_ULTI_CHEQ  TD_VC_020,      
@VNNU_CHEQ   TD_IN_001,      
@VSTI_ENTI   TD_VC_001,      
@VSNU_CHEQ_ANTE  TD_VC_020,      
@VSCO_MONE_EXTR  TD_VC_003,      
@VSCO_MONE_NACI  TD_VC_003,      
@VSTI_CAMB_0002  TD_VC_001,      
@VSTI_ORIG   TD_VC_001,      
@VNIM_MOVI   TD_NU_016_004,      
@OSNU_COMP_BANC  TD_VC_008,      
@ONNU_ERRO   TD_IN_001,      
@VNAA_BNCO   TD_IN_001,      
@VNMM_BNCO   TD_IN_001,      
@VSCO_OPRC_CNTB  TD_VC_003,      
@VNNU_SECU   TD_IN_001,   
@VNNU_SECU_CHEQ     TD_IN_001,   
@VNNU_SECU_DIST  TD_IN_001,  
@VSST_CHEQ_UNID  TD_VC_001, /* Control de chequeras por unidad */     
@VSCO_CNTA_EMPR  TD_VC_020,             
@VSTI_DOCU_CHEQ  TD_VC_003,  
@VSTI_NUME_CHEQ  TD_VC_001,  
@VSNU_DOCU_BANC  TD_VC_020,  
  
@CSNO_BENE   TD_VC_100,  
@CDFE_LIQU   TD_DT_001,  
@CDFE_AMPL   TD_DT_001,  
@CSNU_DOCU_BANC  TD_VC_020,  
@CNNU_DATO_CONV  TD_NU_016_004,  
@CNNU_CHEQ_USAD  TD_IN_001,   
@CDFE_CHEQ   TD_DT_001,   
@VSDE_OBSE_0001  TD_VC_100,  
@VSDE_OBSE_0002  TD_VC_100,  
@VSDE_GLOS_ULTI  TD_VC_100,  
@VSNO_EMPL   TD_VC_100,  
@VSNO_BENE   TD_VC_100,   
@VSST_OPCI_PLAN  TD_VC_003 --VALIDAR PARA LA OPCION PLANILLAS SI ES POR CONCEPTO (CPT) O FIN DE PERIODO (FDP)  
      
Begin Tran SP_TCMOVI_BANC_I12      
      
 /** inserta en la cabecera de bancos **/      
  
 Select @VSST_INTE_BACH = ST_INTE_BACH,      
   @VSTI_OPNI_CARG = CO_TIPO_OPEG,       
   @VSTI_OPNI_ABON = CO_TIPO_OPER,       
   @VSCO_MONE_NACI = CO_MONE_DEFA,      
   @VSCO_MONE_EXTR = CO_MONE_EXTR,      
   @VSTI_CAMB_0002 = TI_CAMB,       
   @VSTI_ORIG      = TI_ORIG,  
   @VSST_CHEQ_UNID = IsNull(ST_CHEQ_UNID,'N')      
 From TMPARA_TESO       
 Where CO_EMPR = @ISCO_EMPR      
  
 --Tipo de documento (Cheque)  
 Select @VSTI_DOCU_CHEQ = TI_DOCU  
 From TTDOCU_CNTB  
 WHERE ST_DOCU_0029 = 'S'  
  
 Declare CU_TCMOVI_BANC_I09_1 Cursor For      
 Select  CO_TRAB, NO_TRAB, NU_DATO_CALC, CO_MONE, FE_OPER, FA_TIPO_CAMB,   
   CO_TIPO_OPER, ISNULL(CO_SUBR, ''), ISNULL(NO_BENE,''), FE_AMPL, FE_LIQU,   
   ISNULL(NU_DOCU_BANC,''), NU_DATO_CONV, NU_CHEQ_USAD, FE_CHEQ   
 From #TWCHEQ_PLAN      
      
 Open CU_TCMOVI_BANC_I09_1       
 Fetch CU_TCMOVI_BANC_I09_1       
 Into @CSCO_TRAB, @CSNO_TRAB, @CNNU_DATO_CALC, @CSCO_MONE, @CDFE_OPER, @CNFA_TIPO_CAMB,   
   @CSCO_TIPO_OPER, @CSCO_SUBR, @CSNO_BENE, @CDFE_AMPL, @CDFE_LIQU, @CSNU_DOCU_BANC,   
   @CNNU_DATO_CONV, @CNNU_CHEQ_USAD, @CDFE_CHEQ       
  
 Select @VNFE_0001  = @@FETCH_STATUS      
  
 Select @VNNU_SECU = IsNull(Max(NU_SECU),0) + 1      
 From TDTRAB_PROC      
 Where CO_EMPR = @ISCO_EMPR      
      
 While (@VNFE_0001 = 0)      
 Begin      
  If (@VNFE_0001 < 0)      
  Begin         
   Close CU_TCMOVI_BANC_I09_1      
   Deallocate CU_TCMOVI_BANC_I09_1      
   Return  
  End        
   
  If @VSST_INTE_BACH = 'N' AND @ISST_ASTO_RESU = 'N' AND       
  @ISCO_TIPO_OPER != @VSTI_OPNI_CARG AND @ISCO_TIPO_OPER != @VSTI_OPNI_ABON      
  Begin        
   EXEC SP_TTULTI_ASTO_Q02 @ISCO_EMPR, @ISCO_USUA_MODI, @ISCO_UNID_TESO, @ISCO_TIPO_OPER, @IDFE_OPER, @OSNU_COMP_BANC OUTPUT, @ONNU_ERRO OUTPUT       
     
   IF (@ONNU_ERRO != 0)      
   Begin      
    RAISERROR 20001 'FIN DE ARCHIVO'      
    ROLLBACK TRANSACTION SP_TCMOVI_BANC_I12              
    Close CU_TCMOVI_BANC_I09_1      
    Deallocate CU_TCMOVI_BANC_I09_1      
    RETURN      
   End      
  End       
  Else      
  Begin      
   Select @VSCO_NUEV_CHAR  = ISNULL(MAX(NU_COMP_BANC), '0')      
   From TCMOVI_BANC       
   Where CO_EMPR = @ISCO_EMPR       
   And  CO_BANC = @ISCO_BANC       
   And  NU_CNTA_BANC = @ISNU_CNTA_BANC       
   And  AA_BNCO = @ISAA_BNCO      
   And  MM_BNCO = @ISMM_BNCO       
   And  TI_MOVI_BANC = 'E'        
   And  NU_COMP_BANC LIKE '000%'      
  
   Select @VNCO_NUEV_NUME = Convert(Int , @VSCO_NUEV_CHAR) + 1      
  
   Select @VSCO_NUEV_CHAR = Convert(Char(8) , @VNCO_NUEV_NUME)      
  
   -- RELLENA DE CEROS HASTA 8 CARACTERES       
   Select @VSCO_NUEV_CHAR = ISNULL(REPLICATE('0',8- DATALENGTH(LTRIM(RTRIM(@VSCO_NUEV_CHAR)))),'') +LTRIM(RTRIM(@VSCO_NUEV_CHAR))      
  
   Select @OSNU_COMP_BANC = @VSCO_NUEV_CHAR       
  
   Select @VNUL_CORR_AJUS = 0      
   SELECT @VNUL_CORR_EGRE = @VNCO_NUEV_NUME       
  End      
   
  If @ISCO_TIPO_DOCU = @VSTI_DOCU_CHEQ   
  BEGIN   
   Select @VSNU_DOCU_BANC = ''  
         
   Select @VSTI_NUME_CHEQ = TI_NUME_CHEQ  
   From TMCNTA_BANC  
   Where CO_EMPR = @ISCO_EMPR  
   And  CO_BANC = @ISCO_BANC  
   And  NU_CNTA_BANC = @ISNU_CNTA_BANC  
  
   IF @VSTI_NUME_CHEQ = 'D'  
   BEGIN  
    SELECT @VSNU_CHEQ = @CSNU_DOCU_BANC  
   END  
   ELSE IF @VSTI_NUME_CHEQ = 'G'  
   BEGIN  
    -- Numero de cheque que se genero antes --  
    if @VSST_CHEQ_UNID = 'N'  --- Sin control Unidad por Chequera = Antes  
     Select @VSNU_ULTI_CHEQ = NU_ULTI_CHEQ,    
       @VNNU_SECU_CHEQ = NU_SECU    
     From TTSTOC_CHEQ    
     Where CO_EMPR = @ISCO_EMPR      
     And  CO_BANC = @ISCO_BANC      
     And  NU_CNTA_BANC = @ISNU_CNTA_BANC      
     And  SI_CHEQ_ACTU = 'S'       
     And  TI_SITU = 'ACT'        
    Else  
     Select @VSNU_ULTI_CHEQ = NU_ULTI_CHEQ,    
       @VNNU_SECU_CHEQ = NU_SECU    
     From TTSTOC_CHEQ    
     Where CO_EMPR = @ISCO_EMPR      
     And  CO_BANC = @ISCO_BANC      
     And  NU_CNTA_BANC = @ISNU_CNTA_BANC      
     And  SI_CHEQ_ACTU = 'S'       
     And  TI_SITU = 'ACT'        
     And  CO_UNID_CONC = @ISCO_UNID_TESO  
     
    Select @VSNU_CHEQ_ANTE = CONVERT(VARCHAR(15),CONVERT (int,@VSNU_ULTI_CHEQ ) + 1)      
    Select @VSNU_CHEQ = ISNULL(REPLICATE('0', 15- DATALENGTH(LTRIM(RTRIM(@VSNU_CHEQ_ANTE)))),'') +LTRIM(RTRIM(@VSNU_CHEQ_ANTE))          
   END     
  END  
  ELSE  
  BEGIN  
   Select @VSNU_CHEQ = ''  
   Select @VSNU_DOCU_BANC = @CSNU_DOCU_BANC  
  END  
   
  If @ISTI_PLAN = 'OBR'  
  BEGIN      
   Select @VSTI_ENTI = 'O'         
  END  
  Else      
  BEGIN  
   Select @VSTI_ENTI = 'E'      
  END  
  
  SELECT @VNIM_MOVI = @CNNU_DATO_CONV  
  
  SELECT @VSST_OPCI_PLAN = ''  
  
  IF @ISOP_TRAB = 'JUD'  
  BEGIN  
   SELECT @VSDE_OBSE_0001 = 'RJ'  
   SELECT @VSDE_OBSE_0002 = 'B - '  
   SELECT @VSNO_BENE = @CSNO_BENE  
  
   SELECT @VSNO_EMPL = NO_APEL_PATE +  ' '  + rtrim(LEFT(NO_TRAB, 5))  
   FROM TMTRAB_PERS  
   WHERE CO_TRAB = @CSCO_TRAB  
    
  END  
  
  IF @ISOP_TRAB = 'PLA'  
  BEGIN  
   SELECT @VSDE_OBSE_0001 = 'PLA '  
     
     
     
   SELECT @VSNO_EMPL = NO_APEL_PATE +  ' '  + rtrim(NO_APEL_MATE) + ' ' + rtrim(NO_TRAB)  
   FROM TMTRAB_PERS  
   WHERE CO_TRAB = @CSCO_TRAB  
  
   IF ISNULL(@ISCO_CPTO_FORM, '') = ''  
   BEGIN  
    SELECT @VSST_OPCI_PLAN = 'FDP'  
    SELECT @VSDE_OBSE_0002 = 'FMS'  
   END  
   ELSE IF ISNULL(@ISCO_CPTO_FORM, '') != ''  
   BEGIN  
    SELECT @VSST_OPCI_PLAN = 'CPT'  
    SELECT @VSDE_OBSE_0002 = @ISCO_CPTO_FORM  
   END  
   SELECT @VSNO_BENE = ' ' + @ISAA_BNCO + ' - ' + @ISMM_BNCO  
    
  END  
  
  IF @ISOP_TRAB = 'AMP'  
  BEGIN  
   SELECT @VSDE_OBSE_0001 = 'AMPL LBS'  
   --SELECT @VSDE_OBSE_0002 = 'FECHA AMPLIACION' + ' ' + CONVERT(VARCHAR, @CDFE_AMPL, 103)  
   SELECT @VSDE_OBSE_0002 = CONVERT(VARCHAR, @CDFE_AMPL, 103)  
   SELECT @VSNO_BENE = ''  
     
   SELECT @VSNO_EMPL = NO_APEL_PATE +  ' '  + rtrim(NO_APEL_MATE) + ' ' + rtrim(NO_TRAB)  
   FROM TMTRAB_PERS  
   WHERE CO_TRAB = @CSCO_TRAB  
    
  END  
  
  IF @ISOP_TRAB = 'LIB'  
  BEGIN  
   SELECT @VSDE_OBSE_0001 = 'LBS'  
   --SELECT @VSDE_OBSE_0002 = 'FECHA LIQUIDACION' + ' ' + CONVERT(VARCHAR, @CDFE_LIQU, 103)  
   SELECT @VSDE_OBSE_0002 = CONVERT(VARCHAR, @CDFE_LIQU, 103)  
   SELECT @VSNO_BENE = ''  
  
   SELECT @VSNO_EMPL = NO_APEL_PATE +  ' '  + rtrim(NO_APEL_MATE) + ' ' + rtrim(NO_TRAB)  
   FROM TMTRAB_PERS  
   WHERE CO_TRAB = @CSCO_TRAB   
   
  END  
  
  SELECT @VSDE_GLOS_ULTI = LEFT(@ISTI_PLAN + ' - ' + @VSDE_OBSE_0001 + ' - ' + @VSNO_EMPL + ' - ' + @VSDE_OBSE_0002 + @VSNO_BENE, 100)  
       
  --Inserta Cabecera  
  Insert Into TCMOVI_BANC(      
   CO_EMPR, CO_BANC, NU_CNTA_BANC, AA_BNCO, MM_BNCO, TI_MOVI_BANC, NU_COMP_BANC, CO_UNID_CONC,   
   FE_OPER, CO_TIPO_OPER, CO_SUBR, CO_TIPO_DOCU, NU_DOCU_BANC, FA_TIPO_CAMB, CO_BANC_CHEQ, NU_CHEQ,       
   IM_MOVI, FE_CHEQ,  CO_ENTR_REND, FE_DISP, FE_ENTR_CHEQ, FE_PROG_CHEQ, TI_ENTI, CO_ENTI, DE_NOMB_ORDE,       
   SI_SOLO_BANC, SI_OPER_CONC, AA_CONC, MM_CONC, DE_OBSE, ST_CONT, NU_PROC, TI_SITU,CO_USUA_CREA,      
   CO_USUA_MODI, CO_GRUP_CONC, NU_SOLI, NU_CHEQ_USAD)          
  Values (      
   @ISCO_EMPR, @ISCO_BANC, @ISNU_CNTA_BANC, @ISAA_BNCO, @ISMM_BNCO, 'E', @OSNU_COMP_BANC, @ISCO_UNID_TESO,      
   @IDFE_OPER, @ISCO_TIPO_OPER, @ISCO_SUBR, @ISCO_TIPO_DOCU, @VSNU_DOCU_BANC, @INFA_TIPO_CAMB, NULL, @VSNU_CHEQ,   
   @VNIM_MOVI, @IDFE_CHEQ, NULL, NULL, NULL, NULL, @VSTI_ENTI, @CSCO_TRAB, substring(@CSNO_TRAB,1,100),       
   'N', 'N', NULL, NULL, @VSDE_GLOS_ULTI, 'N', NULL, 'ACT', @ISCO_USUA_MODI, @ISCO_USUA_MODI, NULL, NULL, @VNNU_SECU_CHEQ)            
   
  If @@error <> 0      
  Begin      
   Rollback tran SP_TCMOVI_BANC_I12      
   Close CU_TCMOVI_BANC_I09_1      
   Deallocate CU_TCMOVI_BANC_I09_1      
   Return      
  End      
  
  SELECT @VNNU_SECU_DIST = ''  
  SELECT @VSCO_CNTA_EMPR = ''  
  
  --Obtenemos Secuencial  
  Select  @VNNU_SECU_DIST = IsNull(Max(NU_SECU), 0)   
  From  TDBANC_DIST  
  Where  CO_EMPR = @ISCO_EMPR  
  And CO_UNID_CONC = @ISCO_UNID_TESO  
  And CO_BANC = @ISCO_BANC  
  And NU_CNTA_BANC = @ISNU_CNTA_BANC  
  And AA_BNCO =  @ISAA_BNCO  
  And MM_BNCO =  @ISMM_BNCO  
  And TI_MOVI_BANC = 'E'  
  And NU_COMP_BANC = @OSNU_COMP_BANC  
   
  SELECT @VNNU_SECU_DIST = @VNNU_SECU_DIST + 1  
  
  --Obtenemos Cuenta Contable por el Tipo de Operación  
  Select @VSCO_CNTA_EMPR = ISNULL(CO_CNTA_EMPR,'')   
  FROM TDTIPO_OPER  
  Where CO_EMPR = @ISCO_EMPR  
  And  CO_TIPO_OPER = @ISCO_TIPO_OPER  
  And  TI_MOVI = 'CAR'  
  
    
     
  --INSERTAMOS DETALLE (DISTRIBUCION)  
  EXEC SP_TDMOVI_BANC_I04 @ISCO_EMPR, @ISCO_USUA_MODI, @ISCO_BANC, @ISNU_CNTA_BANC,@ISAA_BNCO, @ISMM_BNCO,  
  'E', @OSNU_COMP_BANC, @VNNU_SECU_DIST, @VSCO_CNTA_EMPR, 'CAR', @VSTI_ENTI, @CSCO_TRAB, NULL, 'M', 100,   
  @VNIM_MOVI, NULL, NULL, NULL, 'I', @VSDE_GLOS_ULTI, @ISCO_UNID_TESO  
  
  If @@error <> 0      
  Begin      
   Rollback tran SP_TCMOVI_BANC_I12      
   Close CU_TCMOVI_BANC_I09_1      
   Deallocate CU_TCMOVI_BANC_I09_1      
   Return      
  End    
  
  -- Inserta a la tabla TDTRAB_PROC para grabar los empleados que se le ha girado un cheque --  
  IF @ISCO_TIPO_DOCU != @VSTI_DOCU_CHEQ  
  BEGIN  
   Insert into TDTRAB_PROC (      
    CO_EMPR, CO_UNID_CNTB, CO_TRAB, CO_PLAN, NU_ANNO, NU_PERI, CO_CPTO_FORM, NU_SECU, CO_MONE, IM_TRAB_CALC, CO_BANC,   
    NU_CNTA_BANC, NU_COMP_BACA, FE_OPER, FA_TIPO_CAMB, CO_TIPO_OPER, CO_SUBR, ST_OPCI_TRAB, NO_BENE, FE_AMPL, FE_LIQU,   
    IM_TRAB_CONV, NU_CHEQ_USAD, CO_TIPO_DOCU, NU_DOCU_BANC, FE_CHEQ, ST_OPCI_PLAN, CO_USUA_CREA, FE_USUA_CREA, CO_USUA_MODI, FE_USUA_MODI)      
   Values (@ISCO_EMPR, @ISCO_UNID_PLAN, @CSCO_TRAB, @ISTI_PLAN, @INNU_ANNO, @INNU_PERI, @ISCO_CPTO_FORM, @VNNU_SECU,       
    @CSCO_MONE, @CNNU_DATO_CALC, @ISCO_BANC, @ISNU_CNTA_BANC, @OSNU_COMP_BANC, @CDFE_OPER,        
    @CNFA_TIPO_CAMB, @CSCO_TIPO_OPER, @CSCO_SUBR, @ISOP_TRAB, @CSNO_BENE, @CDFE_AMPL, @CDFE_LIQU, @CNNU_DATO_CONV,   
    @CNNU_CHEQ_USAD, @ISCO_TIPO_DOCU, @VSNU_DOCU_BANC, @CDFE_CHEQ, @VSST_OPCI_PLAN, @ISCO_USUA_MODI, GETDATE(), @ISCO_USUA_MODI, GETDATE() )      
  END  
  ELSE  
  BEGIN  
   Insert into TDTRAB_PROC (      
    CO_EMPR, CO_UNID_CNTB, CO_TRAB, CO_PLAN, NU_ANNO, NU_PERI, CO_CPTO_FORM, NU_SECU, CO_MONE, IM_TRAB_CALC, CO_BANC,   
    NU_CNTA_BANC, NU_COMP_BACA, FE_OPER, FA_TIPO_CAMB, CO_TIPO_OPER, CO_SUBR, ST_OPCI_TRAB, NO_BENE, FE_AMPL, FE_LIQU, ST_GENE_COMP,   
    IM_TRAB_CONV, NU_CHEQ_USAD, CO_TIPO_DOCU, NU_DOCU_BANC, FE_CHEQ, ST_OPCI_PLAN, CO_USUA_CREA, FE_USUA_CREA, CO_USUA_MODI, FE_USUA_MODI)      
   Values (@ISCO_EMPR, @ISCO_UNID_PLAN, @CSCO_TRAB, @ISTI_PLAN, @INNU_ANNO, @INNU_PERI, @ISCO_CPTO_FORM, @VNNU_SECU,       
    @CSCO_MONE, @CNNU_DATO_CALC, @ISCO_BANC, @ISNU_CNTA_BANC, @OSNU_COMP_BANC, @CDFE_OPER,        
    @CNFA_TIPO_CAMB, @CSCO_TIPO_OPER, @CSCO_SUBR, @ISOP_TRAB, @CSNO_BENE, @CDFE_AMPL, @CDFE_LIQU, 'N', @CNNU_DATO_CONV,   
    @CNNU_CHEQ_USAD, @ISCO_TIPO_DOCU, @VSNU_CHEQ, @CDFE_CHEQ, @VSST_OPCI_PLAN, @ISCO_USUA_MODI, GETDATE(), @ISCO_USUA_MODI, GETDATE() )      
  END  
   
  If @@error <> 0      
  Begin      
   Rollback tran SP_TCMOVI_BANC_I12      
   Close CU_TCMOVI_BANC_I09_1      
   Deallocate CU_TCMOVI_BANC_I09_1      
   Return      
  End      
    
  --Actualiza Numero de Cheques SI es GENERADO  
  IF @VSTI_NUME_CHEQ = 'G'  
  BEGIN  
   If @VSST_CHEQ_UNID = 'N'  --- Sin control Unidad por Chequera = Antes     
   BEGIN  
    Update TTSTOC_CHEQ      
    Set  NU_ULTI_CHEQ = @VSNU_CHEQ , FE_ULTI_CHEQ = @IDFE_OPER,      
      FE_USUA_MODI = GETDATE(), CO_USUA_MODI = @ISCO_USUA_MODI      
    Where CO_EMPR = @ISCO_EMPR        
    and  CO_BANC = @ISCO_BANC       
    and  NU_CNTA_BANC = @ISNU_CNTA_BANC   
    and  SI_CHEQ_ACTU = 'S'      
   END  
   Else  
   BEGIN  
    Update TTSTOC_CHEQ      
    Set  NU_ULTI_CHEQ = @VSNU_CHEQ , FE_ULTI_CHEQ = @IDFE_OPER,      
      FE_USUA_MODI = GETDATE(), CO_USUA_MODI = @ISCO_USUA_MODI      
    Where CO_EMPR = @ISCO_EMPR        
    and  CO_BANC = @ISCO_BANC       
    and  NU_CNTA_BANC = @ISNU_CNTA_BANC       
    and  SI_CHEQ_ACTU = 'S'  
    And  CO_UNID_CONC = @ISCO_UNID_TESO  
   END  
   If @@error <> 0      
   Begin      
    Rollback tran SP_TCMOVI_BANC_I12      
    Close CU_TCMOVI_BANC_I09_1      
    Deallocate CU_TCMOVI_BANC_I09_1      
    Return      
   End    
      
  END    
   
  -- Actualizando el numero de cheque en la tabla temporal para los trabajadores --  
  
  Update #TWCHEQ_PLAN   
  Set  NU_CHEQ = @VSNU_CHEQ,   
    NU_COMP_BANC = @OSNU_COMP_BANC   
  WHERE CURRENT OF CU_TCMOVI_BANC_I09_1       
   
  ----------- Actualiza los Correlativos ------------------   
  If @VSST_INTE_BACH = 'S' OR @ISST_ASTO_RESU = 'S' OR       
  @ISCO_TIPO_OPER = @VSTI_OPNI_CARG OR @ISCO_TIPO_OPER = @VSTI_OPNI_ABON      
  Begin          
   
   If @ISTI_CORR_INEG = 'N'      
   Begin      
    Select @VNUL_CORR_EGRE = UL_CORR_EGRE       
    From TMSABA_MENS      
    WHERE CO_EMPR = @ISCO_EMPR        
    AND  CO_BANC = @ISCO_BANC       
    AND  NU_CNTA_BANC = @ISNU_CNTA_BANC       
    AND  AA_BNCO = @ISAA_BNCO       
    AND  MM_BNCO = @ISMM_BNCO       
  
    Update TMSABA_MENS      
    Set  UL_CORR_EGRE = @VNUL_CORR_EGRE + 1 + @VNUL_CORR_AJUS,   
      CO_USUA_MODI = @ISCO_USUA_MODI,       
      FE_USUA_MODI = GETDATE()      
    Where CO_EMPR = @ISCO_EMPR       
    And  CO_BANC = @ISCO_BANC       
    And  NU_CNTA_BANC = @ISNU_CNTA_BANC       
    And  AA_BNCO = @ISAA_BNCO       
    And  MM_BNCO = @ISMM_BNCO      
  
    If @@error <> 0      
    Begin      
     Rollback tran SP_TCMOVI_BANC_I12      
     Close CU_TCMOVI_BANC_I09_1      
     Deallocate CU_TCMOVI_BANC_I09_1      
     Return      
    End      
   End      
   Else      
   Begin      
    Select @VNUL_CORR_INEG = UL_CORR_INEG       
    From TMSABA_MENS      
    WHERE CO_EMPR = @ISCO_EMPR        
    AND  CO_BANC = @ISCO_BANC       
    AND  NU_CNTA_BANC = @ISNU_CNTA_BANC       
    AND  AA_BNCO = @ISAA_BNCO        
    AND  MM_BNCO = @ISMM_BNCO       
  
    Update TMSABA_MENS      
    Set  UL_CORR_INEG = @VNUL_CORR_INEG + 1 + @VNUL_CORR_AJUS,   
      CO_USUA_MODI = @ISCO_USUA_MODI,      
      FE_USUA_MODI = GETDATE()      
    Where CO_EMPR = @ISCO_EMPR       
    And  CO_BANC = @ISCO_BANC       
    And  NU_CNTA_BANC = @ISNU_CNTA_BANC       
    And  AA_BNCO = @ISAA_BNCO       
    And  MM_BNCO = @ISMM_BNCO      
  
    If @@error <> 0      
    Begin      
     Rollback tran SP_TCMOVI_BANC_I12      
     Close CU_TCMOVI_BANC_I09_1      
     Deallocate CU_TCMOVI_BANC_I09_1      
     Return      
    End      
   End      
  End      
   
  -- Generación Voucher Contable  --   
  If @VSST_INTE_BACH = 'N' AND @ISST_ASTO_RESU = 'N' AND       
  @ISCO_TIPO_OPER != @VSTI_OPNI_CARG AND @ISCO_TIPO_OPER != @VSTI_OPNI_ABON      
  Begin        
   Select @VNAA_BNCO = CONVERT(INT,@ISAA_BNCO)      
   Select @VNMM_BNCO = CONVERT(INT,@ISMM_BNCO)      
  
   EXEC SP_TTPROC_INTE_I64 @ISCO_EMPR, @ISCO_USUA_MODI, @ISCO_UNID_TESO, @ISCO_BANC, @ISNU_CNTA_BANC, '', @VNAA_BNCO, @VNMM_BNCO, @IDFE_OPER, @OSNU_COMP_BANC, 'S'      
  
   If @@error <> 0      
   Begin      
    Rollback tran SP_TCMOVI_BANC_I12      
    Close CU_TCMOVI_BANC_I09_1      
    Deallocate CU_TCMOVI_BANC_I09_1      
    Return      
   End      
  End      
   
  Select Distinct @VSCO_OPRC_CNTB = CO_OPRC_CNTB From TDTIPO_OPER Where CO_EMPR = @ISCO_EMPR And CO_TIPO_OPER = @ISCO_TIPO_OPER      
   
  Delete TTINTE_CNDE      
  Where CO_EMPR = @ISCO_EMPR      
  And  NU_CNTB_EMPR = 1      
  And  CO_UNID_CNTB = @ISCO_UNID_TESO      
  And  CO_OPRC_CNTB = @VSCO_OPRC_CNTB      
  And  NU_ANNO      = @VNAA_BNCO      
  And  NU_MESE      = @VNMM_BNCO      
  And  NU_ASTO      = @OSNU_COMP_BANC      
   
  Update TCMOVI_BANC      
  Set  ST_CONT = 'P',    
    CO_USUA_MODI = @ISCO_USUA_MODI,      
    FE_USUA_MODI = GETDATE()      
  Where CO_EMPR  = @ISCO_EMPR      
  And  CO_BANC = @ISCO_BANC      
  And  NU_CNTA_BANC = @ISNU_CNTA_BANC      
  And  AA_BNCO = @ISAA_BNCO      
  And  MM_BNCO = @ISMM_BNCO      
  And  TI_MOVI_BANC = 'E'      
  And  NU_COMP_BANC = @OSNU_COMP_BANC      
   
 Fetch CU_TCMOVI_BANC_I09_1       
 Into @CSCO_TRAB, @CSNO_TRAB, @CNNU_DATO_CALC, @CSCO_MONE, @CDFE_OPER, @CNFA_TIPO_CAMB,   
   @CSCO_TIPO_OPER, @CSCO_SUBR, @CSNO_BENE, @CDFE_AMPL, @CDFE_LIQU, @CSNU_DOCU_BANC,   
   @CNNU_DATO_CONV, @CNNU_CHEQ_USAD, @CDFE_CHEQ     
   
 Select @VNFE_0001 = @@FETCH_STATUS      
 End          
 Close CU_TCMOVI_BANC_I09_1      
 Deallocate CU_TCMOVI_BANC_I09_1      
      
Commit Tran SP_TCMOVI_BANC_I12      
      
RETURN      
      
/*------------------------ Fin ------------------------------*/  
  
  
  
GO
